libxc: correct dirty_bitmap bounce size in xc_hvm_track_dirty_vram
authorIan Campbell <ian.campbell@citrix.com>
Wed, 10 Nov 2010 14:56:06 +0000 (14:56 +0000)
committerIan Campbell <ian.campbell@citrix.com>
Wed, 10 Nov 2010 14:56:06 +0000 (14:56 +0000)
The size should be in bytes not 32-bit words. Fixes graphics
corruption issues for HVM guests due to bouncing too little data.

Also the dirty_bitmap buffer is output only and therefore only needs
bouncing in one direction.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/libxc/xc_misc.c

index f3ffb225bdbd7e7b5b90b3017708ade2f5c1fbe4..0a207cde3498098fab73c1cec3f369c95274b138 100644 (file)
@@ -423,7 +423,7 @@ int xc_hvm_track_dirty_vram(
     unsigned long *dirty_bitmap)
 {
     DECLARE_HYPERCALL;
-    DECLARE_HYPERCALL_BOUNCE(dirty_bitmap, (nr+31) / 32, XC_HYPERCALL_BUFFER_BOUNCE_BOTH);
+    DECLARE_HYPERCALL_BOUNCE(dirty_bitmap, (nr+7) / 8, XC_HYPERCALL_BUFFER_BOUNCE_OUT);
     DECLARE_HYPERCALL_BUFFER(struct xen_hvm_track_dirty_vram, arg);
     int rc;